Термином "туннель" обозначается набор утилит, с помощью которых можно организовать безопасный удаленный доступ к контроллерам и другим сетевым устройствам, находящимся на объектах. Например, можно удаленно прошить контроллер или зайти на веб-интерфейс коммутатора.
Туннель организуется с помощью трех сервисов: туннель-консоль, туннель-сервер и туннель-клиент (далее консоль, сервер и клиент). В интернете установлен сервер, к которому подключаются установленный в локальной сети объекта клиент и установленная в локальной сети условного офиса консоль.
Такая система позволяет транслировать все сетевые запросы от рабочей станции через открытые TCP и UDP порты консоли на соответствующие порты целевого устройства.
Дистрибутив туннель-консоли для Windows
При запуске консоли на ПК ее IP будет 127.0.0.1
. Соответственно, все программы, работающие через туннель с удаленными целями, необходимо направлять на 127.0.0.1
. В случае, если UDP запросы не проходят на 127.0.0.1
- можно использовать внешний IP-адрес ПК (192.168.0.XXX
).
Сервер может быть установлен в облаке, у провайдера или в собственном датацентре. Требования минимальные (1ЦПУ, 500МБ ОЗУ, 50МБ диск. пространства).
Для обеспечения безопасности сервер по умолчанию работает через SSL. В идеале, необходимо наличие доменного имени и сертификат от доверенного центра, но при их отсутствии сервер автоматически создает самоподписные сертификаты и работает с ними. В таком случае у клиента и консоли необходимо отключить в конфигах параметр ssl_check_certificate.
Пульт.Онлайн предоставляет бесплатный публичный доступ к серверу tunnel.pult.online, но в случае необходимости можно легко поднять свой собственный.
Дистрибутив туннель-сервера для Linux
Туннель-клиент входит в состав дистрибутивов Сервера и Шлюза в виде сервиса tunnelclient
. Туннель-клиент по умолчанию запущен и настроен на сервер tunnel.pult.online
. Вы можете отключить сервис tunnelclient
или направить на собственный туннель-сервер, изменив настройки сервиса.
На объекте устанавливаем клиент, указываем ему рабочий сервер, определяем его ID и пароль (смотрим в конфиге после установки или в веб-интерфейсе, если в клиент составе шлюза)
В офисе запускаем консоль (локально на ПК или на отдельном устройстве)
Работаем с IP консоли, как будто это удаленная цель
Важный момент: Если ID клиента И/ИЛИ пароль указаны неверно - индикатор соединения консоли покажет отсутствие связи с клиентом. Это сделано для минимизации рисков в случае брутфорса по ID клиентов (которые по умолчанию являются MAC-адресами) - при неверном пароле сервер ответит, что клиент не найден, хотя клиент при этом может быть онлайн.
В один момент времени консоль работает только с одной целью, но работать с данной целью может множество пользователей и приложений. Т.е можно одновременно прошивать контроллер, настраивать его через веб-интерфейс и при этом быть подключенным к нему по SSH или FTP.
С одним клиентом могут одновременно работать множество консолей. Если требуется доступ к устройству, на котором установлен сам клиент - в качестве IP-адреса цели укажите 127.0.0.1
.
На скриншоте показано, что консоль запущена на локальном ПК через tunnel.pult.online
с клиентом 985DADB20DF1
, целью является узел 192.168.0.100
в локальной сети клиента. Работа ведется с портами 80,22,502,8080,8000
(TCP) и 12345
(UDP). В данном примере выполнялась прошивка Segnetics SMH4. Программе, выполняющей прошивку (SMLogix) указывался IP контроллера = 192.168.0.162
(IP-адрес ПК, на котором запущена туннель-консоль). Соответственно, все данные от SMLogix, приходящие на данный IP, транслировались консолью на удаленный контроллер и обратно.
В линуксовых дистрибутивах конфигурационные файлы утилит можно отредактировать через терминал.
По умолчанию, файлы располагаются в следующих локациях:
/pult_tunnelserver/services/tunnelserver/config.cfg
/pult_gateway/services/tunnelclient/config.cfg